package com.trainingcloud.utils;


import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;

import java.util.Collections;

public class AutoCodeCreateUtil {
    public static void main(String[] args) {
        //配置DataSourceConfig
        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder(
                "jdbc:mysql://1.12.58.32:3306/trainingcloud",
                "root",
                "zhihe123"
        ).build();

        //配置全局信息：  GlobalConfig
        GlobalConfig globalConfig = new GlobalConfig.Builder()
                .fileOverride()                                         //覆盖已生成文件
                .outputDir("D:\\Case\\IDEAProject\\TrainingCloud\\src\\main\\java")  //指定输出目录
                .author("纸鹤")                                          //作者名
                .enableSwagger()                                        //开启 swagger 模式
                .dateType(DateType.TIME_PACK)                           //时间策略
                .commentDate("yyyy-MM-dd")                              //注释日期
                .build();  

        //配置包的信息    PackageConfig
        PackageConfig packageConfig = new PackageConfig.Builder()
                .parent("com")                      //父包名
                .moduleName("trainingcloud")        //父包模块名
                .entity("pojo")                     //Entity 包名
                .service("service")                 //Service 包名
                .serviceImpl("service.impl")        //Service Impl 包名
                .mapper("mapper")                   //Mapper 包名
                .xml("mapper.xml")                  //Mapper XML 包名
                .controller("ctrl")                 //Controller 包名
                .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\Case\\IDEAProject\\TrainingCloud\\src\\main\\resources\\mapper"))  //路径配置信息
                .build();

        //创建执行类AutoGenerator
        AutoGenerator generator = new AutoGenerator(dataSourceConfig);
        generator.global(globalConfig);
        generator.packageInfo(packageConfig);

        //调用这个自动生成代码的执行类的执行方法
        generator.execute();
    }
}
